package com.minimalist.common.entity.lindi.vo.priceconfig;

import com.minimalist.common.config.mybatis.bo.PageReq;
import io.swagger.v3.oas.annotations.media.Schema;

import java.io.Serial;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Objects;

/**
 * 林地指标交易平台_价格配置查询 VO类。
 *
 * @author 11987
 * @since 2025-07-09
 */
@Schema(name = "林地指标交易平台_价格配置查询实体")
public class LindiPriceConfigQueryVO extends PageReq implements Serializable{
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(name = "priceType", description = "价格类型", type = "string")
    private String priceType;

    @Schema(name = "effectiveDate", description = "生效日期", type = "string")
    private Timestamp effectiveDate;

    @Schema(name = "expireDate", description = "失效日期", type = "string")
    private Timestamp expireDate;

    public LindiPriceConfigQueryVO(){
    }

    public String getPriceType(){
        return priceType;
    }

    public void setPriceType(String priceType){
        this.priceType = priceType;
    }

    public Timestamp getEffectiveDate(){
        return effectiveDate;
    }

    public void setEffectiveDate(Timestamp effectiveDate){
        this.effectiveDate = effectiveDate;
    }

    public Timestamp getExpireDate(){
        return expireDate;
    }

    public void setExpireDate(Timestamp expireDate){
        this.expireDate = expireDate;
    }

    @Override
    public boolean equals(Object o){
        if (this == o){
            return true;
        }
        if (o == null || getClass() != o.getClass()){
            return false;
        }
        if (!super.equals(o)){
            return false;
        }
        LindiPriceConfigQueryVO that = (LindiPriceConfigQueryVO) o;
        return Objects.equals(priceType, that.priceType) &&
                Objects.equals(effectiveDate, that.effectiveDate) &&
                Objects.equals(expireDate, that.expireDate);
    }

    @Override
    public int hashCode(){
        return Objects.hash(super.hashCode(), priceType, effectiveDate, expireDate);
    }
}